package com.weimall.pojo;

import java.util.ArrayList;
import java.util.List;

public class GgTbMxExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public GgTbMxExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTablenameIsNull() {
            addCriterion("TableName is null");
            return (Criteria) this;
        }

        public Criteria andTablenameIsNotNull() {
            addCriterion("TableName is not null");
            return (Criteria) this;
        }

        public Criteria andTablenameEqualTo(String value) {
            addCriterion("TableName =", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotEqualTo(String value) {
            addCriterion("TableName <>", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameGreaterThan(String value) {
            addCriterion("TableName >", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameGreaterThanOrEqualTo(String value) {
            addCriterion("TableName >=", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLessThan(String value) {
            addCriterion("TableName <", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLessThanOrEqualTo(String value) {
            addCriterion("TableName <=", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLike(String value) {
            addCriterion("TableName like", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotLike(String value) {
            addCriterion("TableName not like", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameIn(List<String> values) {
            addCriterion("TableName in", values, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotIn(List<String> values) {
            addCriterion("TableName not in", values, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameBetween(String value1, String value2) {
            addCriterion("TableName between", value1, value2, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotBetween(String value1, String value2) {
            addCriterion("TableName not between", value1, value2, "tablename");
            return (Criteria) this;
        }

        public Criteria andXhIsNull() {
            addCriterion("XH is null");
            return (Criteria) this;
        }

        public Criteria andXhIsNotNull() {
            addCriterion("XH is not null");
            return (Criteria) this;
        }

        public Criteria andXhEqualTo(Integer value) {
            addCriterion("XH =", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhNotEqualTo(Integer value) {
            addCriterion("XH <>", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhGreaterThan(Integer value) {
            addCriterion("XH >", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhGreaterThanOrEqualTo(Integer value) {
            addCriterion("XH >=", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhLessThan(Integer value) {
            addCriterion("XH <", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhLessThanOrEqualTo(Integer value) {
            addCriterion("XH <=", value, "xh");
            return (Criteria) this;
        }

        public Criteria andXhIn(List<Integer> values) {
            addCriterion("XH in", values, "xh");
            return (Criteria) this;
        }

        public Criteria andXhNotIn(List<Integer> values) {
            addCriterion("XH not in", values, "xh");
            return (Criteria) this;
        }

        public Criteria andXhBetween(Integer value1, Integer value2) {
            addCriterion("XH between", value1, value2, "xh");
            return (Criteria) this;
        }

        public Criteria andXhNotBetween(Integer value1, Integer value2) {
            addCriterion("XH not between", value1, value2, "xh");
            return (Criteria) this;
        }

        public Criteria andMcIsNull() {
            addCriterion("MC is null");
            return (Criteria) this;
        }

        public Criteria andMcIsNotNull() {
            addCriterion("MC is not null");
            return (Criteria) this;
        }

        public Criteria andMcEqualTo(String value) {
            addCriterion("MC =", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcNotEqualTo(String value) {
            addCriterion("MC <>", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcGreaterThan(String value) {
            addCriterion("MC >", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcGreaterThanOrEqualTo(String value) {
            addCriterion("MC >=", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcLessThan(String value) {
            addCriterion("MC <", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcLessThanOrEqualTo(String value) {
            addCriterion("MC <=", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcLike(String value) {
            addCriterion("MC like", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcNotLike(String value) {
            addCriterion("MC not like", value, "mc");
            return (Criteria) this;
        }

        public Criteria andMcIn(List<String> values) {
            addCriterion("MC in", values, "mc");
            return (Criteria) this;
        }

        public Criteria andMcNotIn(List<String> values) {
            addCriterion("MC not in", values, "mc");
            return (Criteria) this;
        }

        public Criteria andMcBetween(String value1, String value2) {
            addCriterion("MC between", value1, value2, "mc");
            return (Criteria) this;
        }

        public Criteria andMcNotBetween(String value1, String value2) {
            addCriterion("MC not between", value1, value2, "mc");
            return (Criteria) this;
        }

        public Criteria andLxIsNull() {
            addCriterion("LX is null");
            return (Criteria) this;
        }

        public Criteria andLxIsNotNull() {
            addCriterion("LX is not null");
            return (Criteria) this;
        }

        public Criteria andLxEqualTo(String value) {
            addCriterion("LX =", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxNotEqualTo(String value) {
            addCriterion("LX <>", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxGreaterThan(String value) {
            addCriterion("LX >", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxGreaterThanOrEqualTo(String value) {
            addCriterion("LX >=", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxLessThan(String value) {
            addCriterion("LX <", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxLessThanOrEqualTo(String value) {
            addCriterion("LX <=", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxLike(String value) {
            addCriterion("LX like", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxNotLike(String value) {
            addCriterion("LX not like", value, "lx");
            return (Criteria) this;
        }

        public Criteria andLxIn(List<String> values) {
            addCriterion("LX in", values, "lx");
            return (Criteria) this;
        }

        public Criteria andLxNotIn(List<String> values) {
            addCriterion("LX not in", values, "lx");
            return (Criteria) this;
        }

        public Criteria andLxBetween(String value1, String value2) {
            addCriterion("LX between", value1, value2, "lx");
            return (Criteria) this;
        }

        public Criteria andLxNotBetween(String value1, String value2) {
            addCriterion("LX not between", value1, value2, "lx");
            return (Criteria) this;
        }

        public Criteria andKdIsNull() {
            addCriterion("KD is null");
            return (Criteria) this;
        }

        public Criteria andKdIsNotNull() {
            addCriterion("KD is not null");
            return (Criteria) this;
        }

        public Criteria andKdEqualTo(Integer value) {
            addCriterion("KD =", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdNotEqualTo(Integer value) {
            addCriterion("KD <>", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdGreaterThan(Integer value) {
            addCriterion("KD >", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdGreaterThanOrEqualTo(Integer value) {
            addCriterion("KD >=", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdLessThan(Integer value) {
            addCriterion("KD <", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdLessThanOrEqualTo(Integer value) {
            addCriterion("KD <=", value, "kd");
            return (Criteria) this;
        }

        public Criteria andKdIn(List<Integer> values) {
            addCriterion("KD in", values, "kd");
            return (Criteria) this;
        }

        public Criteria andKdNotIn(List<Integer> values) {
            addCriterion("KD not in", values, "kd");
            return (Criteria) this;
        }

        public Criteria andKdBetween(Integer value1, Integer value2) {
            addCriterion("KD between", value1, value2, "kd");
            return (Criteria) this;
        }

        public Criteria andKdNotBetween(Integer value1, Integer value2) {
            addCriterion("KD not between", value1, value2, "kd");
            return (Criteria) this;
        }

        public Criteria andXswIsNull() {
            addCriterion("XSW is null");
            return (Criteria) this;
        }

        public Criteria andXswIsNotNull() {
            addCriterion("XSW is not null");
            return (Criteria) this;
        }

        public Criteria andXswEqualTo(Integer value) {
            addCriterion("XSW =", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswNotEqualTo(Integer value) {
            addCriterion("XSW <>", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswGreaterThan(Integer value) {
            addCriterion("XSW >", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswGreaterThanOrEqualTo(Integer value) {
            addCriterion("XSW >=", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswLessThan(Integer value) {
            addCriterion("XSW <", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswLessThanOrEqualTo(Integer value) {
            addCriterion("XSW <=", value, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswIn(List<Integer> values) {
            addCriterion("XSW in", values, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswNotIn(List<Integer> values) {
            addCriterion("XSW not in", values, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswBetween(Integer value1, Integer value2) {
            addCriterion("XSW between", value1, value2, "xsw");
            return (Criteria) this;
        }

        public Criteria andXswNotBetween(Integer value1, Integer value2) {
            addCriterion("XSW not between", value1, value2, "xsw");
            return (Criteria) this;
        }

        public Criteria andAllownullIsNull() {
            addCriterion("AllowNull is null");
            return (Criteria) this;
        }

        public Criteria andAllownullIsNotNull() {
            addCriterion("AllowNull is not null");
            return (Criteria) this;
        }

        public Criteria andAllownullEqualTo(String value) {
            addCriterion("AllowNull =", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullNotEqualTo(String value) {
            addCriterion("AllowNull <>", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullGreaterThan(String value) {
            addCriterion("AllowNull >", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullGreaterThanOrEqualTo(String value) {
            addCriterion("AllowNull >=", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullLessThan(String value) {
            addCriterion("AllowNull <", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullLessThanOrEqualTo(String value) {
            addCriterion("AllowNull <=", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullLike(String value) {
            addCriterion("AllowNull like", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullNotLike(String value) {
            addCriterion("AllowNull not like", value, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullIn(List<String> values) {
            addCriterion("AllowNull in", values, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullNotIn(List<String> values) {
            addCriterion("AllowNull not in", values, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullBetween(String value1, String value2) {
            addCriterion("AllowNull between", value1, value2, "allownull");
            return (Criteria) this;
        }

        public Criteria andAllownullNotBetween(String value1, String value2) {
            addCriterion("AllowNull not between", value1, value2, "allownull");
            return (Criteria) this;
        }

        public Criteria andMrIsNull() {
            addCriterion("MR is null");
            return (Criteria) this;
        }

        public Criteria andMrIsNotNull() {
            addCriterion("MR is not null");
            return (Criteria) this;
        }

        public Criteria andMrEqualTo(String value) {
            addCriterion("MR =", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrNotEqualTo(String value) {
            addCriterion("MR <>", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrGreaterThan(String value) {
            addCriterion("MR >", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrGreaterThanOrEqualTo(String value) {
            addCriterion("MR >=", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrLessThan(String value) {
            addCriterion("MR <", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrLessThanOrEqualTo(String value) {
            addCriterion("MR <=", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrLike(String value) {
            addCriterion("MR like", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrNotLike(String value) {
            addCriterion("MR not like", value, "mr");
            return (Criteria) this;
        }

        public Criteria andMrIn(List<String> values) {
            addCriterion("MR in", values, "mr");
            return (Criteria) this;
        }

        public Criteria andMrNotIn(List<String> values) {
            addCriterion("MR not in", values, "mr");
            return (Criteria) this;
        }

        public Criteria andMrBetween(String value1, String value2) {
            addCriterion("MR between", value1, value2, "mr");
            return (Criteria) this;
        }

        public Criteria andMrNotBetween(String value1, String value2) {
            addCriterion("MR not between", value1, value2, "mr");
            return (Criteria) this;
        }

        public Criteria andSmIsNull() {
            addCriterion("SM is null");
            return (Criteria) this;
        }

        public Criteria andSmIsNotNull() {
            addCriterion("SM is not null");
            return (Criteria) this;
        }

        public Criteria andSmEqualTo(String value) {
            addCriterion("SM =", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmNotEqualTo(String value) {
            addCriterion("SM <>", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmGreaterThan(String value) {
            addCriterion("SM >", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmGreaterThanOrEqualTo(String value) {
            addCriterion("SM >=", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmLessThan(String value) {
            addCriterion("SM <", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmLessThanOrEqualTo(String value) {
            addCriterion("SM <=", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmLike(String value) {
            addCriterion("SM like", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmNotLike(String value) {
            addCriterion("SM not like", value, "sm");
            return (Criteria) this;
        }

        public Criteria andSmIn(List<String> values) {
            addCriterion("SM in", values, "sm");
            return (Criteria) this;
        }

        public Criteria andSmNotIn(List<String> values) {
            addCriterion("SM not in", values, "sm");
            return (Criteria) this;
        }

        public Criteria andSmBetween(String value1, String value2) {
            addCriterion("SM between", value1, value2, "sm");
            return (Criteria) this;
        }

        public Criteria andSmNotBetween(String value1, String value2) {
            addCriterion("SM not between", value1, value2, "sm");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}